#include<vector>
#include<iostream>
using namespace std;


int main()
{
    double a[] = {0, 1, 2, 3};
    vector<double> v1(a, a+4);  // 不包括a+4     开括号
    for(int i = 0; i < v1.size(); i++)
        cout << v1[i] << " ";
    cout << endl;

    v1.assign(3, 7.77);  // 第一个参数是拷贝的份数n， 第二个才是需要拷贝的值
    cout << "After assignment: " << endl;
    for(int i = 0; i < v1.size(); i++)
        cout << v1[i] << " ";  // 我们发现拷贝之前，需要将向量清空
    cout << endl;

    v1.at(1) = 49.37;  // 找到向量中的指定元素，并将其作为左值，进行赋值
    for(int i = 0; i < v1.size(); i++)
        cout << v1[i] << " ";  
    cout << endl;

    vector<double>::iterator p1 = v1.begin();
    v1.insert(p1, 3.33);  // 利用迭代器在向量中插入一个元素
    for(int i = 0; i < v1.size(); i++)
        cout << v1[i] << " ";  
    cout << endl;
    // WARNING: 使用insert函数之后，所有的迭代器都必然会失效！！！我们需要重新去定义迭代器
    p1 = v1.begin();

    v1.erase(p1, p1+3);  // 依旧是不包括最后一个元素
    for(int i = 0; i < v1.size(); i++)
        cout << v1[i] << " ";  
    cout << endl;

    v1.clear();  // 将容器中所有元素清除
    return 0;
}